#pragma once

#include "GraphData.h"
#include <cmath>
#include <unordered_map>
#include <cstdlib>
#include <ctime>
#include <limits>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <string>

ClusteredEdges clusterEdges(const std::vector<Edge>& edges,
                            const std::vector<Node>& nodes,
                            int k,
                            int maxIterations);
                            
void write_clustered_edges_to_csv(const std::vector<std::vector<Edge>>& clusters, const std::string& filename);
